package com.xbongbong.saas.service;

import com.xbongbong.paas.domain.entity.ext.PaasFormDataEntityExt;
import com.xbongbong.paas.pojo.FieldAttrEntityForImport;
import com.xbongbong.paas.pojo.dto.FormDataAddDTO;
import com.xbongbong.paas.pojo.dto.FormDataDeleteBatchDTO;
import com.xbongbong.paas.pojo.dto.FormDataListDTO;
import com.xbongbong.paas.pojo.dto.ImportFormDataDTO;
import com.xbongbong.paas.pojo.dto.SaasFormSaveDTO;
import com.xbongbong.paas.pojo.dto.ValidateDataDTO;
import com.xbongbong.paas.pojo.imports.CellTitlePojo;
import com.xbongbong.paas.pojo.imports.RowGroupPojo;
import com.xbongbong.paas.pojo.vo.FormDataDeleteBatchVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.pro.applist.pojo.vo.ListAppVO;
import com.xbongbong.pro.fundtransfer.pojo.FundTransferEditAttrUpdateDTO;
import com.xbongbong.pro.fundtransfer.pojo.dto.CheckTransferDateDTO;
import com.xbongbong.pro.fundtransfer.pojo.vo.CheckTransferDateVO;

import java.util.List;

/**
 * Author: 汪腾伟
 * Description： 资金调拨单service
 * Date: Created in 2021/5/26 11:19
 */
public interface FundTransferService {
    void beforeSave(ValidateDataDTO validateDataDTO) throws XbbException;

    void afterSave(SaasFormSaveDTO saasFormSaveDTO) throws XbbException;

    /**
     * 格式化excel导入的数据
     *
     * @param importFormDataDTO
     * @param titlePojoList
     * @param rowGroupPojo
     * @param fieldAttrList
     * @return
     */
    FormDataAddDTO formatExcelValue(ImportFormDataDTO importFormDataDTO, List<CellTitlePojo> titlePojoList, RowGroupPojo rowGroupPojo, List<FieldAttrEntityForImport> fieldAttrList) throws XbbException;

    /**
     * 用于批量编辑功能
     *
     * @param fundTransferEditAttrUpdateDTO
     */
    void batchEditAttr(FundTransferEditAttrUpdateDTO fundTransferEditAttrUpdateDTO) throws XbbException;

    /**
     * 格式化资金调拨单显示
     *
     * @param formDataListDTO
     * @param esEntities
     * @param totalCount
     * @return
     */
    ListAppVO formatFundTransferAppList(FormDataListDTO formDataListDTO, List<PaasFormDataEntityExt> esEntities, Integer totalCount) throws XbbException;

    void afterSaveForWorkflow(SaasFormSaveDTO saasFormSaveDTO);

    FormDataDeleteBatchVO deleteBatch(FormDataDeleteBatchDTO formDataDeleteBatchDTO) throws XbbException;

}
